﻿/******************************************************   
创建者: 梁家健
创建时间: 2017-04-08
修改:
修改时间: 
功能: 小品类SKC数实体
 ******************************************************/

using com.nm.Attributes;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

namespace PlanAPI.model
{
    public class PLItemSkcPcsModel
    {
        /// <summary>
        /// 小品类SKC数实体
        /// </summary>
        /// Writer：梁家健
        /// Create Date：2017-04-08
        public class CreatModel : NeceModel
        {
            [ParamDescription("公司代码")]
            public string CompanyID { get; set; }
            [ParamDescription("审核人")]
            public string Checker { get; set; }
            [ParamDescription("新增记录标记")]
            public long? AddFlag { get; set; }
            [ParamDescription("修改时间")]
            public DateTime? MofifyDTM { get; set; }
            [ParamDescription("读取时间")]
            public DateTime? LoadTime { get; set; }
            [ParamDescription("修改时间")]
            public DateTime? EtlDate { get; set; }
        }

        /// <summary>
        /// 小品类SKC数主要实体
        /// </summary>
        /// Writer：梁家健
        /// Create Date：2017-04-08
        public class NeceModel
        {
            [ParamDescription("年份")]
            public long? Yearv { get; set; }
            [ParamDescription("月份")]
            public long? Monthv { get; set; }
            [ParamDescription("周")]
            public long? Weekv { get; set; }
            [ParamDescription("零售分区")]
            public string ParentAreaID { get; set; }
            [ParamDescription("店铺ID")]
            public string ShopID { get; set; }
            [ParamDescription("类别")]
            public string KindID { get; set; }
            [ParamDescription("系列")]
            public string SeriesID { get; set; }
            [ParamDescription("商品层")]
            public string MaterialProperty { get; set; }
            [ParamDescription("品类")]
            public string ModelID { get; set; }
            [ParamDescription("小品类")]
            public string ItemID { get; set; }
            [ParamDescription("SKC占比")]
            public decimal? StandAmountRate { get; set; }
            [ParamDescription("SKC占比(换算)")]
            public decimal? PtStandAmountRate { get; set; }
            [ParamDescription("SKC数")]
            public long? SKCQty { get; set; }
            [ParamDescription("确认SKC数")]
            public long? CkSKCQty { get; set; }
        }

        /// <summary>
        /// 小品类SKC数显示实体
        /// </summary>
        /// Writer：梁家健
        /// Create Date：2017-04-08
        public class ListModel : NeceModel
        {
            [ParamDescription("零售分区")]
            public string ParentAreaName { get; set; }
            [ParamDescription("店铺")]
            public string ShopName { get; set; }
            [ParamDescription("店铺Code")]
            public string ShopCode { get; set; }
            [ParamDescription("类别")]
            public string KindName { get; set; }
            [ParamDescription("系列")]
            public string SeriesName { get; set; }
            [ParamDescription("品类")]
            public string ModelName { get; set; }
            [ParamDescription("小品类")]
            public string ItemName { get; set; }
            [ParamDescription("周系列SKC数")]
            public long? CheckWeekvPlanSKC { get; set; }
            [ParamDescription("商品层占比")]
            public decimal? MatPCkPtStandAmountRate { get; set; }
            [ParamDescription("品类占比")]
            public decimal? ModelCkPtStandAmountRate { get; set; }
            [ParamDescription("小品类SKC占比")]
            public decimal? ItemCkPtStandAmountRate { get; set; }
            [ParamDescription("小品类深度")]
            public long? CKMoveDeepQty { get; set; }
            [ParamDescription("平均单价")]
            public decimal? AvgPrice { get; set; }

            public IList<IGrouping<string, ListModel>> list { get; set; }
        }

        /// <summary>
        /// 小品类SKC数修改实体
        /// </summary>
        /// Writer：梁家健
        /// Create Date：2017-04-08
        public class ModifyModel
        {
            public IList<NeceModel> list { get; set; }
        }

    }

    public class PLItemSkcOperLogModel
    {
        /// <summary>
        /// 小品类宽度满足度操作日志实体
        /// </summary>
        /// Writer：梁家健
        /// Create Date：2017-04-08
        public class CreatModel : NeceModel
        {
            [ParamDescription("公司代码")]
            public string CompanyID { get; set; }
            [ParamDescription("审核人")]
            public string Checker { get; set; }
            [ParamDescription("修改时间")]
            public DateTime? MofifyDTM { get; set; }
            [ParamDescription("读取时间")]
            public DateTime? LoadTime { get; set; }
            [ParamDescription("修改时间")]
            public DateTime? EtlDate { get; set; }
        }

        /// <summary>
        /// 小品类宽度满足度操作日志主要实体
        /// </summary>
        /// Writer：梁家健
        /// Create Date：2017-04-08
        public class NeceModel
        {
            [ParamDescription("年份")]
            public long? Yearv { get; set; }
            [ParamDescription("月份")]
            public long? Monthv { get; set; }
            [ParamDescription("周")]
            public long? Weekv { get; set; }
            [ParamDescription("类别")]
            public string KindID { get; set; }
            [ParamDescription("系列")]
            public string SeriesID { get; set; }
            [ParamDescription("商品层")]
            public string MaterialProperty { get; set; }
            [ParamDescription("品类")]
            public string ModelID { get; set; }
            [ParamDescription("小品类")]
            public string ItemID { get; set; }
            [ParamDescription("完成标记")]
            public long? FinishFalg { get; set; }
        }

        /// <summary>
        /// 小品类宽度满足度操作日志显示实体
        /// </summary>
        /// Writer：梁家健
        /// Create Date：2017-04-12
        public class ListModel: NeceModel
        {
            [ParamDescription("起定量")]
            public long? PurLimit { get; set; }
            [ParamDescription("最大SKC数")]
            public long? MaxSKCQty { get; set; }
            [ParamDescription("小品类")]
            public string ItemName { get; set; }
            [ParamDescription("是否已生成")]
            public long? isCreate { get; set; }
        }
    }

    public class PLItemSkcCodeDetailModel
    {
        /// <summary>
        /// 小品类SKC编码对应店铺实体
        /// </summary>
        /// Writer：梁家健
        /// Create Date：2017-04-12
        public class CreatModel : NeceModel
        {
            [ParamDescription("审核人")]
            public string Checker { get; set; }
            [ParamDescription("修改时间")]
            public DateTime? MofifyDTM { get; set; }
            [ParamDescription("读取时间")]
            public DateTime? LoadTime { get; set; }
            [ParamDescription("修改时间")]
            public DateTime? EtlDate { get; set; }
        }

        /// <summary>
        /// 小品类SKC编码对应店铺主要实体
        /// </summary>
        /// Writer：梁家健
        /// Create Date：2017-04-12
        public class NeceModel: TitleModel
        {
            [ParamDescription("公司代码")]
            public string CompanyID { get; set; }
            [ParamDescription("数据源")]
            public string ExtrSource { get; set; }
            [ParamDescription("年份")]
            public long? Yearv { get; set; }
            [ParamDescription("月份")]
            public long? Monthv { get; set; }
            [ParamDescription("周")]
            public long? Weekv { get; set; }
            [ParamDescription("零售分区")]
            public string ParentAreaID { get; set; }
            [ParamDescription("店铺ID")]
            public string ShopID { get; set; }
            [ParamDescription("类别")]
            public string KindID { get; set; }
            [ParamDescription("系列")]
            public string SeriesID { get; set; }
            [ParamDescription("商品层")]
            public string MaterialProperty { get; set; }
            [ParamDescription("品类")]
            public string ModelID { get; set; }
            [ParamDescription("小品类")]
            public string ItemID { get; set; }
            [ParamDescription("删除标记")]
            public long? DeleteFlag { get; set; }
            [ParamDescription("完成标记")]
            public long? FinishFalg { get; set; }
            [ParamDescription("审核状态")]
            public long? CheckState { get; set; }
            [ParamDescription("备注")]
            public string Remark { get; set; }
        }

        /// <summary>
        /// 小品类SKC编码对应店铺表头实体
        /// </summary>
        /// Writer：梁家健
        /// Create Date：2017-04-13
        public class TitleModel
        {
            [ParamDescription("SKC编码")]
            public string SKCCode { get; set; }
        }

        /// <summary>
        /// 小品类SKC编码对应店铺列表实体
        /// </summary>
        /// Writer：梁家健
        /// Create Date：2017-04-13
        public class ListModel: NeceModel
        {
            [ParamDescription("店铺名称")]
            public string ShopName { get; set; }
            [ParamDescription("SKC宽度")]
            public long? CkSKCQty { get; set; }
            [ParamDescription("SKC深度")]
            public long? CKMoveDeepQty { get; set; }
        }

        /// <summary>
        /// 小品类SKC编码对应店铺显示实体
        /// </summary>
        /// Writer：梁家健
        /// Create Date：2017-04-12
        public class ShowModel
        {
            public IList<IGrouping<string, ListModel>> list { get; set; }
            public IList<TitleModel> titleList { get; set; }
        }

        /// <summary>
        /// 小品类SKC编码对应店铺创建实体
        /// </summary>
        /// Writer：梁家健
        /// Create Date：2017-04-12
        public class CreModel
        {
            [ParamDescription("年份")]
            public long Yearv { get; set; }
            [ParamDescription("月份")]
            public long Monthv { get; set; }
            [ParamDescription("周")]
            public long Weekv { get; set; }
            [ParamDescription("类别")]
            public string KindID { get; set; }
            [ParamDescription("系列")]
            public string SeriesID { get; set; }
            [ParamDescription("商品层")]
            public string MaterialProperty { get; set; }
            [ParamDescription("小品类ID列表")]
            public string ItemIDList { get; set; }
        }

        /// <summary>
        /// 小品类SKC编码对应店铺修改实体
        /// </summary>
        /// Writer：梁家健
        /// Create Date：2017-04-13
        public class ModifyModel
        {
            public IList<ListModel> list { get; set; }
        }
    }
}
